package integer;

/**
 * 包装类
 * Java有两大类型:基本类型和引用类型
 * 区别：
 * 基本类型直接以值的形式存在
 * 引用类型则以对象的形式存在
 *
 * 基本类型不具备面向对象特性（封装，继承，多态）。实际开发多有不便。为了解决这个问题，
 * Java为8个基本类型提供了包装类，目的是让基本类型以对象形式存在来参与面向对象开发
 *
 *
 *
 */




public class IntegerDemo1 {
    public static void main(String[] args) {

        int d = 123;

        Integer i1 = new Integer(d);
        Integer i2 = new Integer(d);
        System.out.println(i1==i2);
        System.out.println(i1.equals(i2));

        Integer i3 = Integer.valueOf(d);
        Integer i4 = Integer.valueOf(d);
        System.out.println(i3==i4);        //true
        System.out.println(i3.equals(i4)); //true

        Integer i5 = d; //触发了JDK5之后编译器的特性：自动装箱
        //上述代码会被编译器改为：Integer i5 = Integer.valueOf(d);
        Double dou = 123.123;

//        int s = i5.intValue();
        int s = i5; //自动拆箱：编译器会改为：int s = i5.intValue();
        double dd = dou; //double dd = dou.doubleValue();













    }
}
